// /common/http.interceptor.js
import { BASE_URL } from "@/config.js"

const install = (Vue, vm) => {
	Vue.prototype.$u.http.setConfig({
		// baseUrl: process.env.NODE_ENV === 'development'?'':BASE_URL,
		baseUrl: BASE_URL,
		originalData: true,
		loadingText: '努力加载中~',
		loadingTime: 800,
	});
	
	// 请求拦截，配置Token等参数
	Vue.prototype.$u.http.interceptor.request = (config) => {
		// 引用token
		const token = uni.getStorageSync('userinfo').token;
		if(token) {
			config.header.authentication = token;
		}
		if(config.url == '/user/login') config.header.noToken = true;
		return config;
	}
	
	// 响应拦截，判断状态码是否通过
	Vue.prototype.$u.http.interceptor.response = (res) => {
		// 登录失效
		if(res.data.code == 401) {
			vm.$u.toast('验证失败，请重新登录');
			setTimeout(() => {
				uni.reLaunch({
					url: "/pages/login"
				})
			}, 1500)
			return false;
		}
		if(res.data.code == 200) {
			return res.data;
		} else if(res.data.code == 201) {
			vm.$u.toast(res.data.message);
			return false;
		} else {
			vm.$u.toast(res.data.message);
			return res.data;
		}
	}
}

export default {
	install
}